using System;
using System.Collections.Generic;
using System.Text;

using HHo_Model;
using HHo_Negocio;
using System.Data.SqlClient;
using System.Data;

namespace HHo_Negocio
{
    public class GestorSubATA
    {
        public List<E_SubATA> Man_ConsultaSubATA(E_SubATA eSubATA)
        {
            SqlParameter p1, p2, p3, p4;
            SqlDataReader oRdr;
            List<E_SubATA> lst;
            E_SubATA eSATA;

            lst = new List<E_SubATA>();

            p1 = new SqlParameter("@SATA_CODATA",SqlDbType.Char);
            p1.Size = 2;
            if ((eSubATA.CodATA != null) && (eSubATA.CodATA != ""))
                p1.Value = eSubATA.CodATA;

            p2 = new SqlParameter("@SATA_COD", SqlDbType.Char);
            p2.Size = 2;
            if ((eSubATA.CodSubATA != null) && (eSubATA.CodSubATA != ""))
                p2.Value = eSubATA.CodSubATA;

            p3 = new SqlParameter("@SATA_DESC", SqlDbType.VarChar);
            if ((eSubATA.Desc != null) && (eSubATA.Desc != ""))
                p3.Value = eSubATA.Desc;

            p4 = new SqlParameter("@SATA_EST", SqlDbType.Char);
            if ((eSubATA.Estado != null) && (eSubATA.Estado != ""))
                p4.Value = eSubATA.Estado;

            oRdr = SQLHelper.ExecuteReader(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure, "HHSS_MAN_SUBATA", p1, p2, p3, p4);

            if (oRdr != null)
            {
                while (oRdr.Read())
                {
                    eSATA = new E_SubATA();

                    if (oRdr.GetValue(0) != DBNull.Value)
                        eSATA.CodSubATA = oRdr.GetValue(0).ToString();

                    if (oRdr.GetValue(1) != DBNull.Value)
                        eSATA.CodATA = oRdr.GetValue(1).ToString();

                    if (oRdr.GetValue(2) != DBNull.Value)
                        eSATA.Desc = oRdr.GetValue(2).ToString();

                    if (oRdr.GetValue(3) != DBNull.Value)
                        eSATA.Estado = oRdr.GetValue(3).ToString();

                    //Concate ATA y SubATA como Identificador
                    eSATA.ConcatenarATASubATA();

                    lst.Add(eSATA);
                    eSATA = null;
                }
            }
            return lst;
        }

        public bool Man_InsertSubATA(E_SubATA eSubATA)
        {
            SqlParameter p1, p2, p3, p4;
            bool returnValue = true;
            
            p1 = new SqlParameter("@SATA_CODATA", SqlDbType.Char);
            p1.Size = 2;
            if ((eSubATA.CodATA != null) && (eSubATA.CodATA != ""))
                p1.Value = eSubATA.CodATA;
            else
                returnValue = false;

            p2 = new SqlParameter("@SATA_COD", SqlDbType.Char);
            p2.Size = 2;
            if ((eSubATA.CodSubATA != null) && (eSubATA.CodSubATA != ""))
                p2.Value = eSubATA.CodSubATA;
            else
                returnValue = false;

            p3 = new SqlParameter("@SATA_DESC", SqlDbType.VarChar);
            if ((eSubATA.Desc != null) && (eSubATA.Desc != ""))
                p3.Value = eSubATA.Desc;
            else
                returnValue = false;

            p4 = new SqlParameter("@SATA_EST", SqlDbType.Char);
            if ((eSubATA.Estado != null) && (eSubATA.Estado != ""))
                p4.Value = eSubATA.Estado;
            else
                returnValue = false;

            if (returnValue)
            {
                SQLHelper.ExecuteNonQuery(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure,
                    "HHSI_MAN_SUBATA", p1, p2, p3, p4);
                returnValue = true;
            }
            return returnValue;
        }

        public bool Man_ActualizaSubATA(E_SubATA eSubATA)
        {
            SqlParameter p1, p2, p3, p4;
            bool returnValue = true;

            p1 = new SqlParameter("@SATA_CODATA", SqlDbType.Char);
            p1.Size = 2;
            if ((eSubATA.CodATA != null) && (eSubATA.CodATA != ""))
                p1.Value = eSubATA.CodATA;
            else
                returnValue = false;

            p2 = new SqlParameter("@SATA_COD", SqlDbType.Char);
            p2.Size = 2;
            if ((eSubATA.CodSubATA != null) && (eSubATA.CodSubATA != ""))
                p2.Value = eSubATA.CodSubATA;
            else
                returnValue = false;

            p3 = new SqlParameter("@SATA_DESC", SqlDbType.VarChar);
            if ((eSubATA.Desc != null) && (eSubATA.Desc != ""))
                p3.Value = eSubATA.Desc;
            else
                returnValue = false;

            p4 = new SqlParameter("@SATA_EST", SqlDbType.Char);
            if ((eSubATA.Estado != null) && (eSubATA.Estado != ""))
                p4.Value = eSubATA.Estado;
            else
                returnValue = false;

            if (returnValue)
            {
                SQLHelper.ExecuteNonQuery(SQLHelper.ObtieneCadenaConexion(), CommandType.StoredProcedure,
                    "HHSU_MAN_SUBATA", p1, p2, p3, p4);
                returnValue = true;
            }
            return returnValue;
        }
    }
}
